#include "bs_bos_core_data_storage_stdafx.h"

#include "py_data_class.h"



#ifdef BSPY_EXPORTING_PLUGIN

namespace blue_sky {
namespace python {

  //template <typename strategy_t, typename strategy_t::index_t i>
  //struct idata_int_array_getter
  //{
  //  static 
  //  array_uint8_t
  //  get_array (py_idata <strategy_t> *self)
  //  {
  //    return self->get_int_array (i);
  //  }
  //  static 
  //  void 
  //  set_array (py_idata <strategy_t> *self, const boost::python::object &obj)
  //  {
  //    self->set_int_array (i, obj);
  //  }
  //};
  //template <typename strategy_t, typename strategy_t::index_t i>
  //struct idata_float_array_getter
  //{
  //  static 
  //  array_float16_t
  //  get_array (py_idata <strategy_t> *self)
  //  {
  //    return self->get_float_array (i);
  //  }
  //  static 
  //  void 
  //  set_array (py_idata <strategy_t> *self, const boost::python::object &obj)
  //  {
  //    self->set_float_array (i, obj);
  //  }
  //};

   
    //template <class strategy_t>
    //void py_export_idata_t(const char *name)
    //{
    //  typedef py_idata <strategy_t> T;

    //  class_<T, bases<py_bs_node> > idata_export(name);

    //  idata_export
    //    .def("init",&T::init)
    //    .add_property ("rpo_model",           &T::get_rpo_model, &T::set_rpo_model)
    //    .add_property ("minimal_pore_volume", &T::get_minimal_pore_volume, &T::set_minimal_pore_volume)
    //    .add_property ("restart",             &T::get_restart, &T::set_restart)
    //    .add_property ("nx",                  &T::get_nx, &T::set_nx)
    //    .add_property ("ny",                  &T::get_ny, &T::set_ny)
    //    .add_property ("nz",                  &T::get_nz, &T::set_nz)
    //    .add_property ("pvt_region",          &T::get_pvt_region, &T::set_pvt_region)
    //    .add_property ("sat_region",          &T::get_sat_region, &T::set_sat_region)
    //    .add_property ("eql_region",          &T::get_eql_region, &T::set_eql_region)
    //    .add_property ("fip_region",          &T::get_fip_region, &T::set_fip_region)
    //    .add_property ("fi_n_phase",          &T::get_fi_n_phase, &T::set_fi_n_phase)
    //    .add_property ("fi_phases",           &T::get_fi_phases, &T::set_fi_phases)
    //    .add_property ("rock_region",         &T::get_rock_region, &T::set_rock_region)
    //    .add_property ("equil_regions",       make_function (&T::get_equil_regions, return_value_policy<copy_const_reference> ()))
    //    .add_property ("units_in",            &T::get_units_in, &T::set_units_in)
    //    .add_property ("units_out",           &T::get_units_out, &T::set_units_out)
    //    .add_property ("title",               &T::get_title, &T::set_title)
    //    .add_property ("int_array",           &T::get_int_array, &T::set_int_array)
    //    .add_property ("float_array",         &T::get_float_array, &T::set_float_array)
    //    .def ("get_int_array",                &T::get_int_array)
    //    .def ("get_float_array",              &T::get_float_array)
    //    .def ("set_int_array",                &T::set_int_array)
    //    .def ("set_float_array",              &T::set_float_array)
    //    .def ("__getitem__",                  &T::get_float_array_by_name)
    //    ;

    //  REGISTER_PROPERTIES (0, 9,  (idata_export, int_names_table,    idata_int_array_getter,   strategy_t));
    //  REGISTER_PROPERTIES (0, 16, (idata_export, double_names_table, idata_float_array_getter, strategy_t));
    //}


  void py_export_idata()
  {
    base_exporter <idata, idata_exporter>::export_class ("idata");
  }

} // namespace python
} // namespace blue_sky
#endif